ppackage demo0512;

import demo0512.Emp;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

//主程序入口类,负责与用户交互并调用相应的功能方法
public class ViewMain {
    public static void main(String[] args) {
        boolean flag = true;//控制程序循环的标志
        TestList testList = new TestList();//创建TestList对象用于调用功能方法
        List<Emp> list = new ArrayList<>();//创建员工列表集合

        //主循环,持续显示菜单并等待用户输入
        while (flag) {
            testList.menu();//显示菜单
            Scanner scanner = new Scanner(System.in);//创建Scanner对象获取用户输入
            int n = scanner.nextInt();//读取用户选择的操作

            //根据用户输入的选项执行相应的操作
            switch (n) {
                case 0:
                    //退出系统,将循环标志设为false
                    System.out.println("退出系统");
                    flag = false;
                    break;
                case 1:
                    //添加员工功能
                    System.out.println("添加员工界面");
                    System.out.println("请输入员工信息");
                    System.out.println("请输入员工编号");
                    String number = scanner.next();
                    System.out.println("请输入员工姓名");
                    String name = scanner.next();
                    System.out.println("请输入员工年龄");
                    int age = scanner.nextInt();

                    //创建员工对象并添加到列表中
                    Emp emp = new Emp(number, name, age);
                    testList.addEmp(list, emp);
                    System.out.println(list);//打印当前员工列表
                    break;
                case 2:
                    //查询所有员工信息
                    System.out.println("来到查询所有员工信息的界面");
                    testList.findAllEmp(list);
                    break;
                case 3:
                    //根据姓名查询员工信息
                    System.out.println("来到根据姓名查询员工信息的界面");
                    System.out.println("请输入员工的姓名");
                    String findName = scanner.next();
                    testList.findEmpName(list, findName);
                    break;
                case 4:
                    //根据工号删除员工信息
                    System.out.println("来到根据员工编号删除员工信息界面");
                    System.out.println("请输入员工的工号");
                    String findNumber = scanner.next();
                    testList.deleteEmpNumber(list, findNumber);
                    break;
                case 5:
                    //根据工号查询员工信息
                    System.out.println("来到根据员工编号查询员工信息界面");
                    System.out.println("请输入员工的工号");
                    String findEmpNumber = scanner.next();
                    testList.findEmpNumber(list, findEmpNumber);
                    break;
                case 6:
                    //根据工号修改员工年龄
                    System.out.println("来到根据员工编号修改年龄界面");
                    System.out.println("请输入需要修改的员工工号");
                    String updateEmpNumber = scanner.next();

                    //查询需要修改的员工
                    Emp empToUpdate = testList.findEmpNumber(list, updateEmpNumber);

                    //对查询出来的员工进行修改年龄
                    System.out.println("请输入你需要修改的年龄为:");
                    int updateAge = scanner.nextInt();
                    empToUpdate.setAge(updateAge);//设置新的年龄

                    //更新员工信息
                    testList.updateEmpAge(list, empToUpdate);
                    System.out.println(list);//打印更新后的员工列表
                    break;
            }
        }
    }
}
